모의해킹
호스트기반모의해킹_17_MySQL 취약점 진단
작성자 : Heehyeon Yoo|2025-11-29
# 모의해킹# Database# MySQL# 평문 저장# 암호화
1. 개요
MySQL은 세계적으로 가장 널리 사용되는 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)이다.
- 포트: 기본적으로 TCP 3306 포트를 사용한다.
- 주요 위협: 오래된 버전의 원격 코드 실행(RCE)보다는, 접근 제어 미흡(Misconfiguration)과 데이터 평문 저장이 더 빈번한 취약점이다.
2. 주요 진단 항목
2.1 접근 제어 및 기본 계정(Default Credentials)
- 원격 접속 허용:
root계정이 로컬(Localhost)이 아닌 외부 IP에서도 접속 가능하도록 설정되었는지 확인한다. - 빈 비밀번호(Empty Password):
- 일부 MySQL 설정은
root계정의 비밀번호가 비어있어도 접속을 허용한다. - 진단:
mysql -u root -h [Target_IP] -p(비밀번호 입력 시 그냥 Enter).
- 일부 MySQL 설정은
2.2 중요 데이터 저장 방식(Data At Rest)
데이터베이스 내부의 데이터가 안전하게 보관되고 있는지 확인한다.
- 평문 저장(Clear Text):
- 개인정보(이름, 이메일)나 비밀번호가 암호화되지 않고 평문 그대로 저장되어 있는가?
- 사례:
SELECT * FROM users;결과에password123이 그대로 노출됨.
- 취약한 해시 알고리즘(Weak Hashing):
- 비밀번호를 해시화했더라도, MD5나 SHA-1 같은 낡은 알고리즘을 사용했다면 해시 크래킹(Hash Cracking)을 통해 쉽게 평문화 가능하다.
- 도구:
hash-identifier로 해시 종류 식별.
3. 실무에서는?
- 거짓 양성(False Positive) 주의:
- Nmap 스크립트(
mysql-empty-password)가 "로그인 성공"이라고 보고해도, 실제mysql클라이언트로 접속해보면 안 되는 경우가 많다. 반드시 수동 검증(Manual Verification)을 거쳐야 한다.
- Nmap 스크립트(
- Credential Stuffing:
- DB에서 탈취한 평문 비밀번호나 크래킹된 비밀번호는 다른 서비스(SSH, Admin Page)의 계정 정보일 확률이 매우 높다. 반드시 재사용 공격을 시도해봐야 한다.
- 버전별 취약점:
- RCE 취약점(예: UDF Injection)은 환경 구성이 까다로워 성공률이 낮다. 오히려 "데이터베이스 설정과 저장 방식"의 기본기를 점검하는 것이 결과물 도출에 효율적이다.